﻿package kaze.vo 
{
    import vegas.vo.SimpleValueObject;
    
    import flash.net.registerClassAlias;
    
    /**
     * The application value object.
     */
    public class ApplicationVO extends SimpleValueObject
    {
        
        /**
         * Creates a new ApplicationVO.
         * @param init A generic object containing properties with which to populate the newly instance. If this argument is null, it is ignored.
         */
        public function ApplicationVO( init:Object = null )
        {
            super(init);
        }
        
        /**
         * The id of the default menu.
         */
        public var defaultID:* ;
        
        /**
         * The menu to load before the application registration.
         */
        public var menus:Array ;
        
        /**
         * The states of the application.
         */
        public var states:Array ;
        
        /**
         * The optional type of the application.
         */
        public var type:String ;
        
        /**
         * Preserves the class (type) of an object when the object is encoded in Action Message Format (AMF). 
         */
        public static function register( aliasName:String = "ApplicationVO" ):void
        {
            registerClassAlias( aliasName , ApplicationVO ) ;
        }
    }
}